# 将所有的.o文件链接成.elf文件，“-Ttext 0x0”
# 表示程序的运行地址是0x0，由于目前编写的是位置
# 无关码，可以在任一地址运行
# 将elf文件抽取为可在开发板上运行的bin文件
# 将elf文件反汇编保存在dis文件中，调试程序会用
# 添加文件头
.PHONY: all clean tools

CROSS	?= arm-linux-
NAME	:= clock_init_c

LD		:= $(CROSS)ld
OC		:= $(CROSS)objcopy
OD		:= $(CROSS)objdump
CC		:= $(CROSS)gcc
MK		:= ../../tools/mk_image/mkv210_image
CFLAGS	:= -nostdlib -Wall

#LDFLAGS	:= -Ttext 0x0
LDFLAGS	:= -T ./source/link.lds

INCDIR	:= ./source/include
SRCDIR	:= ./source
OBJS	:= start.o \
		clock.o \
		led.o \
		main.o 

OUTDIR	:= output

all:$(NAME).bin

$(NAME).bin : $(OBJS)
	$(LD) -o $(NAME).elf $^ $(LDFLAGS)
	$(OC) -O binary $(NAME).elf $(NAME).bin
	$(OD) -D $(NAME).elf > $(NAME)_elf.dis
	$(MK) $(NAME).bin

# 将当前目录下存在的汇编文件及C文件编译成.o文件
%.o : $(SRCDIR)/%.S
	$(CC) -o $@ $< -c $(CFLAGS) -I $(INCDIR)
%.o : $(SRCDIR)/%.c
	$(CC) -o $@ $< -c $(CFLAGS) -I $(INCDIR)

clean:
	$(RM) *.o *.elf *.bin *.dis *.sd

tools:
	make -C ../../tools/mk_image/
